persistent data structure